package webbrow.board.guest.model;

import java.util.HashMap;
import java.util.List;

import org.mybatis.spring.SqlSessionTemplate;

import webbrow.board.component.BoardGuestDao;
import webbrow.board.vo.BoardGuestVO;
import webbrow.board.vo.SearchCommand;

public class BoardGuestDaoImpl implements BoardGuestDao {
	private SqlSessionTemplate sqlSessionTemplate;
	public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
		this.sqlSessionTemplate = sqlSessionTemplate;
		System.out.println("sqlSessionTemplate DI : "+sqlSessionTemplate);
	}
	

	public List<?> selectAllBoard() {
		return null;
	}
	
	/**
	 * 전체게시물을 페이징 처리해서 5개씩 리스트로 뿌려주는 메서드
	 */
	public List<?> selectPlusAllBoard(int low, int high) throws Exception {
		HashMap map = new HashMap();
		map.put("low", low);
		map.put("high", high);
		return sqlSessionTemplate.selectList("guest.getPlusAllBoard", map);
	}

	public List<?> selectByKeyword(SearchCommand command) {
		return null;
	}

	/**
	 * no 를 받아 삭제하는 메서드
	 */
	public void deletePost(int no) {
		sqlSessionTemplate.selectOne("guest.deleteGuestBoard", no);
	}

	/**
	 * 글 등록시 실행되는 메서드
	 */
	public void insertGuestBoard(BoardGuestVO vo) throws Exception {
		System.out.println("vo: "+vo);
		sqlSessionTemplate.insert("guest.writeGuestBoard", vo);
	}

	/**
	 * 글 수정시 실행되는 메서드
	 */
	public void updateGuestBoard(BoardGuestVO vo) {
		sqlSessionTemplate.update("guest.updateGuestBoard", vo);
	}

	
	public BoardGuestVO selectGuestBoard(BoardGuestVO vo) {
		return null;
	}

	/**
	 * 비로그인 사용자가 방명록의 글을 수정, 삭제할 때
	 * 패스워드 체크하는 메서드
	 */
	public int selectCheckPassword(BoardGuestVO vo) {
		return sqlSessionTemplate.selectOne("guest.checkGuestPassword", vo);
	}
	
	/**
	 * 수정할 시 상세정보를 보여주는 메서드
	 */
	@Override
	public BoardGuestVO selectDetailBoard(int no) throws Exception {
		return sqlSessionTemplate.selectOne("guest.detailView", no);
	}
	
}
